<!-- 能耗分析 》 同比分析 -->

<template>
  <CommonBody diy>
    <EasyCard>
      <MySearch />
    </EasyCard>

    <EasyCard class="CommonBody-BodyTree" width="242px" height="calc(100% - 90px)" noPadding>
      <PointTree @change="toChange" />
    </EasyCard>

    <EasyCard width="calc(100% - 242px)" height="calc(100% - 90px)">
      <MyTable />
    </EasyCard>
  </CommonBody>
</template>

<script>
// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import store from './store'

// ============================== 导出组件 ============================== //

export default {
  /**
   * 名称定义 (实际使用名称)
   */
  name: 'AnalysisYear',

  /**
   * 混入列表 (配置选项合并)
   */
  mixins: [CORE.mixStore(store)],

  /**
   * 组件导入 (Abc.vue + Abc/index.vue)
   */
  ...CORE.components(
    require.context('../components', true, /vue$/),
    require.context('./', true, /vue$/),
  ),

  /**
   * 监听属性 (深度 deep 首次 immediate)
   */
  watch: {
    /**
     * 监听监测点结构树就绪
     */
    point_readyTree(ready) {
      ready && this.toChange(this.point_tree[0])
    },

    /**
     * 监听分类结构树就绪
     */
    category_readyTree(ready) {
      ready && this.toChange(this.category_tree[0])
    },
  },

  /**
   * 本地方法 (轻量重要在前)
   */
  methods: {
    /**
     * 切换
     */
    toChange(data) {
      if (!data) {
        this.param.monitorPointSiteId = undefined
        this.setList()
      } else {
        this.param.monitorPointSiteId = data.id
        this.startList()
      }
    },
  },
}
</script>
